#ifndef AI_H
#define AI_H

#include <OgreSceneManager.h>
#include <OgreSceneNode.h>
#include <OgreVector3.h>

#define TYPE_PLAYER 1
#define TYPE_BULLET 2
#define TYPE_SPRINTER 3
#define TYPE_TEST_ACTOR 4
#define TYPE_BOSS 5
#define TYPE_ITEM 6
#define TYPE_FLYER 7
#define TYPE_FLAMER 8

class AI
{
public:
    AI();
    virtual ~AI(){}
    virtual void move(float time);
    virtual void setPosition(Ogre::Vector3 pos);
    virtual Ogre::Vector3 getPosition(){return Ogre::Vector3::ZERO;}
    virtual int getType(){return 0;}
    virtual bool colides(){return false;}
    virtual void colide(AI *object){}
    virtual void destroy(){}
    virtual void animDeath(Ogre::Vector3 lastPos){}
    virtual int getDamage(){return 0;}
    bool isNpc(){return m_npc;}
    void setNpc(bool npc){
        m_npc = npc;
    }

protected:
    bool m_npc;
};

#endif // AI_H
